# backend/main.py
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware#（CORS）的中间件，允许前端从不同域名访问后端。

app = FastAPI()
#创建了一个 FastAPI 应用实例，名为 app，这是整个后端服务的核心对象。
# 修改CORS配置 
app.add_middleware(
    CORSMiddleware,
    allow_origins=["http://localhost:5173", "http://127.0.0.1:5173"],  # 允许的源（前端地址）
    allow_credentials=True,#允许携带 cookie 等凭证。
    allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"],#允许的 HTTP 方法。
    allow_headers=["*"],#允许所有请求头。
)
#什么是请求头？？？


# 简单的数据存储
messages = ["Hello from FastAPI!", "这是第二条消息"]
#一个全局列表，用于存储消息。⚠️ 注意：这是存在内存中的，重启服务器数据会丢失。
@app.get("/")
def read_root():
    return {"message": "后端正在运行!"}
#访问 http://localhost:8000/ 时返回一个 JSON，表示后端正常运行。

#获取所有信息
@app.get("/api/messages")
def get_messages():
    return {"messages": messages}

# 方法：GET RESTful 接口：
# 路径：/api/messages
# 作用：返回当前内存中 messages 列表的所有元素。格式为：{"messages": ["Hello from FastAPI!", "这是第二条消息"]}

#添加信息
@app.post("/api/messages")
def add_message(data: dict):
    messages.append(data["message"])
    return {"success": True, "message": "消息已添加"}
# 方法：POST RESTful 接口：
# 路径：/api/messages
# 作用：把前端传来的 JSON（如 {"message": "新内容"}）中的 message 字段取出，追加到 messages 列表，并返回成功提示。
'''什么是RESTful 接口？？
把网上的所有东西（比如消息、用户、商品）都当成资源，每个资源都有一个网址（URL）。
用几个简单的HTTP 动词（GET、POST、PUT、DELETE）来对资源进行操作，就像用遥控器上的几个按钮一样：
GET：获取资源（查看）
POST：新建资源（添加）
PUT：更新资源（修改）
DELETE：删除资源
这样做的好处是统一规范，大家都按这个方式来，写起来简单，维护起来也方便。
举个生活中的例子：
把“消息”当成一本书，书的编号是网址。
GET：把书从书架上拿下来看。
POST：往书架上放一本新书。
PUT：把书的内容整体换掉。
DELETE：把书从书架上扔掉。
'''
# 添加健康检查接口
@app.get("/health")
def health_check():
    return {"status": "ok", "message": "服务正常运行"}